package com.dpkit.annotation;

import com.dpkit.annotation.selector.DPKitConfigurationSelector;
import org.springframework.context.annotation.Import;

import java.lang.annotation.*;

/**
 * 启用DPKit动态持久化功能的入口注解
 * 可配置ORM类型、数据库方言等核心参数
 */
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Import(DPKitConfigurationSelector.class)
public @interface EnableDPKit {
    
    /**
     * 指定使用的ORM类型
     */
    ORMType ormType() default ORMType.AUTO;
    
    /**
     * 显式指定数据库方言
     */
    DatabaseType databaseType() default DatabaseType.AUTO;
    
    /**
     * 是否自动生成DDL
     */
    boolean generateDdl() default false;
    
    /**
     * 实体扫描包路径
     */
    String[] entityPackages() default {};
    
    /**
     * 模板文件位置
     */
    String templateLocation() default "classpath:/dpkit-templates/";

}